/*
 * Copyright 2016, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.xxf.basemvp.weakbase.weak

import java.lang.ref.WeakReference

/**
 * @author :XXF
 */
open class WeakPresenter<V>(view: V) {

    /**
     * 当内存不足可以释放内存
     */
    private var mViewRef: WeakReference<V>? = null

    protected val view: V?
        get() = if (null == mViewRef) {
            null
        } else mViewRef!!.get()


    init {
        this.mViewRef = WeakReference(view)
    }

    /**
     * 解除管理
     */
    internal fun detachView() {
        if (mViewRef != null) {
            mViewRef!!.clear()
            mViewRef = null
        }
    }

}
